<?php
/**
 * Created by PhpStorm.
 * User: lhl
 * Date: 2020/12/29
 * Time: 9:39
 * Features:设置后台列表分页参数
 */

namespace app\adminapiv3\middleware;


use think\facade\Config;
use think\Request;

class SetPageLimit
{
    /**
     * 前置中间件: 设置后台列表分页参数
     */
    public function handle(Request $request,\Closure $next){
        //默认每页数据量
        $default = intval(Config::get('paginate.list_rows',10));
        //实际每页数据量
        $limit = $request->param('limit', $default,'intval');
        //每页数据量不能超过200，超过则以每页10条进行分页
        $limit = ($limit > 200 || $limit < 0) ? $default : $limit;
        //动态设置每页分页数量
        Config::set('paginate.list_rows',$limit);
        //将每页数据量传递给控制器
        $request->pageLimit = $limit;

        return $next($request);
    }
}